package com.demo.jvm.chapter2.gc;

public class AgetoOld {

  private static final int _1MB = 1024 * 1024;

  /**
   * VM参数：-verbose:gc
   * -Xms20M
   * -Xmx20M
   * -Xmn10M
   * -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1
   * -XX:+PrintTenuringDistribution
   */
  public static void main(String[] args) throws InterruptedException {
    byte[] allocation1, allocation2, allocation3;
    // 什么时候进入老年代决定于XX:MaxTenuringThreshold设置
    Thread.sleep(10000);
    allocation1 = new byte[_1MB / 4];
    Thread.sleep(10000);
    System.out.println("1");
    allocation2 = new byte[4 * _1MB];
    allocation3 = new byte[4 * _1MB];
    Thread.sleep(10000);
    allocation3 = null;
    System.out.println("gc");
    Thread.sleep(10000);
    allocation3 = new byte[4 * _1MB];
    Thread.sleep(10000);
  }
}
